During the past decade, multiprocessor systems have become increasingly popular as a flexible means of ultimately achieving high-capacity performance. The many complex problems which have restricted the application of multiprocessor systems in the past are gradually being solved, but several still remain.
Among the most serious problems are those associated with transmitting information among the processors which are required to cooperate in the completion of a data processing task. Most of the techniques currently in use adversely affect the capacity and response times of the systems. Two prior art solutions which have been offered to this problem are the use of a very high speed, high capability bus directly interconnecting the processors of a tightly coupled processor system, and the use of a general data communication facility for interconnecting a loosely coupled system. Both of these approaches have significant disadvantages. The first approach requires a substantial investment in hardware in order to have access to a powerful interprocessor bus and demands sophisticated circuitry in order to achieve the high speed performance required of such a bus. The second solution requires a substantial processing overhead in order to prepare messages for transmission among processors and causes considerable delay in the transmission of messages if the data link is loaded near its capacity. Both of these solutions are especially inefficient in cases in which a very large volume of traffic in the form of interprocessor messages exists between particular pairs of processors. The problem is further aggravated if short messages predominate since the required data processing overhead per message decreases the efficiency of the communicating processors.
Another prior art solution to this kind of problem includes the use of special input/output processors to transmit messages. In this scheme, messages destined for input/output equipment, data links, or other processor systems are placed by a main processor in a memory file accessible by an input/output processor. The input/output processor can then take information out of this file and transmit such information to input/output equipment or to the input/output processor of another main processor system. The disadvantage of this kind of arrangement is that two intermediate processors (in this case input/output processors) as a minimum are required to handle communications between main processors. Delays are encountered in the transmission of the information because two intermediate storage operations are required, and because the cooperation of the two independent intermediate processors is required. These delays adversely affect the response time of the multiprocessor system.